class AccountController < ApplicationController
  # Be sure to include AuthenticationSystem in Application Controller instead
  include AuthenticatedSystem
  
  # If you want "remember me" functionality, add this before_filter to Application Controller
  before_filter :login_from_cookie
  
  layout "main"

  # say something nice, you goof!  something sweet.
  def index
    redirect_to(:action => 'signup') unless logged_in? || User.count > 0
  end

  def login
    return unless request.post?
    self.current_user = User.authenticate(params[:login], params[:password])
    if logged_in?
      # Если установлен параметр "Запомнить меня"
      if params[:remember_me] == "1"
        self.current_user.remember_me
        cookies[:auth_token] = { :value => self.current_user.remember_token , :expires => self.current_user.remember_token_expires_at }
      end
      
      # redirect_back_or_default(:controller => '/account', :action => 'index')
      
      self.current_user.times_entered += 1   # Увеличить количество посещений на единицу
      self.current_user.now_here = true      # Установить флаг присутствия      
      self.current_user.save                 # Сохранить
      
      flash[:notice] = "Вы успешно авторизованы"   # Сообщение об успешном входе в систему
      redirect_to organizations_path               # Перенаправить на главную страницу проекта
    end
  end

  def logout
    self.current_user.forget_me if logged_in?
    
    cookies.delete :auth_token
    reset_session
    
    # redirect_back_or_default(:controller => '/account', :action => 'index')

    self.current_user.now_here = false   # Снять флаг присутствия 
    self.current_user.save               # Сохранить
    
    flash[:notice] = "Вы успешно вышли из системы"   # Сообщение об успешном выходе в систему
    redirect_to organizations_path                   # Перенаправить на главную страницу проекта
  end
  
  def signup
    if logged_in? and current_user.role == 0
      @user = User.new(params[:user])
      return unless request.post?
 
      @user.times_entered += 1   # Увеличить количество посещений на единицу
      @user.now_here = true      # Установить флаг присутствия
      @user.save!                # Сохранить
 
      self.current_user = @user    
 
      flash[:notice] = "Пользователь успешно зарегистрирован"   # Сообщение об успешной регистрации пользователя
      redirect_to organizations_path                            # Перенаправить на главную страницу проекта    
    else
      redirect_to organizations_path
    end
  
  rescue ActiveRecord::RecordInvalid
    render :action => 'signup'
  end
end
